home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Online / Qpopper / doc / readme.nu < prev    next >
Encoding:
Text File  |  1996-01-25  |  6.0 KB  |  207 lines

  1. Popper mods contributed by John Norstad of Northwestern University
  2. (j-norstad@nwu.edu).
  3.  
  4.  
  5. Summary 
  6. =======
  7.  
  8. 1. Properly clean up on abnormal termination and rewrite the mail drop
  9. file. The QC3 mods to catch SIGHUP signals and time out reads were not
  10. enough. You also have to catch SIGPIPE signals to avoid being killed
  11. when the client connection is aborted while the server is writing
  12. (e.g., if you cancel downloading a large message in Eudora, a common
  13. operation).
  14.  
  15. 2. Fixed some bad log messages.
  16.  
  17. 3. Added a mod from Don Lewis <gdonl@gv.ssi1.com>. Under SunOS 4.1.3,
  18. and possibly other systems, the check for null passwords doesn't work.
  19. QC3 checked only for a null password pointer in the struct returned by
  20. getpwnam. You also have to check for an empty string returned by
  21. getpwnam.
  22.  
  23. 4. Added a -s command line option to generate statistics messages in
  24. the log. One message is issued for each session:
  25.  
  26. Stats: username aaa bbb ccc ddd
  27.  
  28. where:
  29.  
  30. aaa = number of messages deleted. 
  31. bbb = number of bytes deleted. 
  32. ccc = number of messages left on server. 
  33. ddd = number of bytes left on server.
  34.  
  35. 5. (The big one). Added a "POP bulletin" feature. This feature gives
  36. system administrators a way to send important announcements to all POP
  37. users without having to do sendmail mass mailings.
  38.  
  39. The feature is enabled via the -b command line option. This option is
  40. followed by the path of the bulletin directory.
  41.  
  42. The bulletin directory contains one file per bulletin. Each file
  43. contains a complete single mail message with header and body in
  44. mailbox format. The first line of each such bulletin must be a "From "
  45. line. The easiest way for sysadmins to create such bulletins is to
  46. mail themselves a copy of the bulletin (using the account to which
  47. they want replies to be sent), then use their mail program to save the
  48. message to a file in the bulletin directory in mailbox format. The
  49. bulletin directory must be world readable.
  50.  
  51. The name of each bulletin file begins with the bulletin number, and
  52. may optionally continue with any other characters. E.g., the file name
  53. of bulletin number 23 might be:
  54.  
  55.         23.pophost_down_sunday
  56.  
  57. Popper creates a file named ".popbull" in the home directory of each
  58. user. This file contains a single line recording the highest numbered
  59. bulletin received by the user.
  60.  
  61. Bulletins are processed by popper in pop_dropcopy.c, immediately after
  62. copying the mail drop to the temporary mail drop, but before building
  63. the temporary mail drop index. All bulletins which this user has not
  64. received previously are appended to the temporary mail drop file.
  65.  
  66. When bulletins are copied to the temporary mail drop file, all "To"
  67. header lines are replaced by "To: username@myhost". Any "Status:"
  68. header lines are deleted. Otherwise, the bulletins are copied as is.
  69.  
  70. When a new user checks for mail the first time, popper creates the
  71. .popbull file in the user's home directory and seeds it with the
  72. current maximum bulletin number. Thus new users do not get old
  73. bulletins.
  74.  
  75. All errors are logged and cause the bulletins to not be copied. E.g.,
  76. if the bulletin directory cannot be located, or the .popbull file
  77. doesn't contain a number, or a bulletin does not begin with a "From "
  78. line, or a bulletin name does not begin with a number, etc.
  79.  
  80. I use bulletin numbers instead of last mod date/times because I want
  81. to make it possible for a sysadmin to, for example, fix a spelling
  82. error in a bulletin without having to force all pop users to receive a
  83. new copy of the bulletin.
  84.  
  85. 6. Changed the default timeout from 30 to 300 seconds (5 minutes).
  86. This value should be reasonably "safe" for even slow dialup
  87. connections.
  88.  
  89. 7. Included a mod from Steve Dorner to implement a new "XTND XLST"
  90. command.
  91.  
  92. 8. Updated the manpage.
  93.  
  94. 9. Changed the version number to just plain version 2.0.
  95.  
  96.  
  97. Detailed mods by source code file 
  98. =================================
  99.  
  100. version.h:
  101.  
  102. Changed version number to 2.0.
  103.  
  104. ---
  105.  
  106. popper.c:
  107.  
  108. Added a call to catch SIGPIPE signals in addition to SIGHUP signals.
  109. Both signals are treated the same way: They set the "hangup" global to
  110. "true". Popper gets a SIGPIPE signal if the client aborts the TCP
  111. stream while recieving data (e.g., in the middle of downloading a
  112. large message). Popper must rewrite the mailbox file in this case. In
  113. QC3, popper was being killed and was not rewriting the mailbox file.
  114.  
  115. Rewrote the state loop to make it a bit more clear. Fixed an error in
  116. the QC3 log messages. QC3 was writing "POP mailbox update failed"
  117. messages when the POP mailbox update actually succeeded, rather than
  118. when it failed.
  119.  
  120. ---
  121.  
  122. pop_pass.c:
  123.  
  124. Added a mod from Don Lewis <gdonl@gv.ssi1.com>. Under SunOS 4.1.3, and
  125. possibly other systems, the check for null passwords doesn't work. QC3
  126. checked only for a null password pointer in the struct returned by
  127. getpwnam. You also have to check for an empty string returned by
  128. getpwnam.
  129.  
  130. ---
  131.  
  132. pop_updt.c:
  133.  
  134. Added stats logging code. If the -s switch is specified on the popper
  135. command line, the following log message is generated:
  136.  
  137. Stats: username aaa bbb ccc ddd
  138.  
  139. where:
  140.  
  141. aaa = number of messages deleted 
  142. bbb = number of bytes deleted 
  143. ccc = number of messages left on server 
  144. ddd = number of bytes left on server
  145.  
  146. ---
  147.  
  148. popper.h:
  149.  
  150. Add a new field named "stats" to the POP struct. This integer field is
  151. non-zero if stats are requested.
  152.  
  153. Add a new field named "bulldir" to the POP struct. This field records
  154. the bulletin directory path, or is NULL if the bulletin feature is not
  155. enabled via the -b switch.
  156.  
  157. Add extern declaration for pop_xlst.
  158.  
  159. Changed default timeout from 30 seconds to 300 seconds. The default
  160. should be a "safe" value. 30 seconds isn't long enough for dialup
  161. connections, for example.
  162.  
  163. ---
  164.  
  165. pop_init.c:
  166.  
  167. Process the new -s command line switch.
  168.  
  169. Process the new -b command line switch.
  170.  
  171. ---
  172.  
  173. pop_bull.c:
  174.  
  175. New source file for the bulletin system.
  176.  
  177. ---
  178.  
  179. pop_dropcopy.c:
  180.  
  181. Add call to pop_bull.
  182.  
  183. ---
  184.  
  185. xtnd_xlst.c:
  186.  
  187. New source file for Steve Dorner's "xlst" command.
  188.  
  189. ---
  190.  
  191. pop_get_subcommand.c:
  192.  
  193. Add table entry for Steve Dorner's "xlst" command.
  194.  
  195. ---
  196.  
  197. Makefile:
  198.  
  199. Add pop_bull.c and xtnd_xlst.c to CSRCS and pop_bull.o and xtnd_xlst.o
  200. to OBJS.
  201.  
  202. ---
  203.  
  204. popper.8
  205.  
  206. Updated the manpage to describe the changes.
  207.